package com.janko.springbootbase.designmode.simpleFactory;

/**
 * @Description 类文件说明
 * @Author nieyankang
 * @Version 1.0
 * @date {date} {time}
 */
public class ATestMain {
    public static void main(String[] args) {
        /**
         * 1、延迟初始化   --->HumanFactory的时候添加HashMap ，例如：硬件连接池，或者初始化的类的时候，参数很多？
         * 2、内存优化
         */


        //女娲第一次造人，试验性质，少造点，火候不足，缺陷产品
        System.out.println("------------造出的第一批人是这样的：白人  -----------------");
        Human whiteHuman = HumanFactory.createHuman(WriteHuman.class);
        whiteHuman.eat();
        whiteHuman.talk();

        //女娲第二次造人，火候加足点，然后又出了个次品，黑人
        System.out.println("\n\n------------造出的第二批人是这样的：黑人   -----------------");
        Human blackHuman = HumanFactory.createHuman(BlackHuman.class);
        blackHuman.eat();
        blackHuman.talk();

        //第三批人了，这次火候掌握的正好，黄色人类（不写黄人，免得引起歧义），备注：RB人不属于此列
        System.out.println("\n\n------------造出的第三批人是这样的：黄色人类-----------------");
        Human yellowHuman=HumanFactory.createHuman(YellowHuman.class);
        yellowHuman.eat();
        yellowHuman.talk();


        for (int i = 0; i < 10; i++) {
            System.out.println("\n\n--------------第"+i+"次随机造了一个人类-----------\n");
            Human human=HumanFactory.createHuman();
            human.talk();
            human.eat();
        }
    }
}
